package Package.FunctionalInterfaces.TheFunctionalInterfaceServesAsTheReturnValueOfTheMethod;


import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.stream.Collector;

public class TheFunctionalInterfaceServesAsTheReturnValueOfTheMethod {
    public static final void TheFunctionalInterfaceServesAsTheReturnValueOfTheMethod(){
        ArrayList<String> array=new ArrayList<String>();
        array.add("cccc");
        array.add("aa");
        array.add("b");
        array.add("ddd");
        System.out.println("排序前：" + array);
        Collections.sort(array,getComparator());
        System.out.println("排序后：" + array);
    }
    private static Comparator<String> getComparator(){
//匿名内部类实现
//        Comparator<String> comparator=new Comparator<String>() {
//            @Override
//            public int compare(String o1, String o2) {
//                return o1.length()-o2.length();
//            }
//        };
//        return comparator;
//        return (String s1,String s2)->{
//            return s1.length()-s2.length();
//        };
 return (s1,s2)->s1.length()-s2.length();
    }
}
//需求描述
//定义一个类(ComparatorDemo)，在类中提供两个方法
//一个方法是：Comparator getComparator() 方法返回值Comparator是一个函数式接口
//一个方法是主方法，在主方法中调用getComparator方法
